package com.huahan.product.domain;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import lombok.Data;

/**
 * 商品信息附表 new
 * @TableName t_products_schedule
 */
@TableName(value ="t_products_schedule")
@Data
public class ProductsSchedule implements Serializable {
    /**
     * 
     */
    @TableId(type = IdType.AUTO)
    private Integer productsScheduleId;

    /**
     * 商品ID
     */
    private Integer goodsId;

    /**
     * 促销描述
     */
    private String goodsDescribe;

    /**
     * 官网地址
     */
    private String officialUrl;

    /**
     * 起购数量
     */
    private Integer needBuyNumber;

    /**
     * 商品介绍
     */
    private String goodsIntroduce;

    /**
     * 规格包装
     */
    private String goodsPackage;

    /**
     * 视频地址
     */
    private String videoUrl;

    /**
     * 视频封面
     */
    private String videoImage;

    /**
     * 品牌名称
     */
    private String brandName;

    /**
     * 商品条形码
     */
    private String goodsCode;

    /**
     * 物流配送方式【1：包邮；2:运费模版；3:自提】
     */
    private Integer logisticsType;

    /**
     * 是否三方商品【0:否；1:是】
     */
    private Integer isOutGoods;

    /**
     * 审核未通过原因
     */
    private String auditReason;

    /**
     * 运费模版ID
     */
    private Integer freightId;

    /**
     * 型号
     */
    private String goodsVersion;

    /**
     * 电商类别ID
     */
    private String otherListId;

    /**
     * 电商类别名称
     */
    private String otherListName;

    /**
     * 移动商品介绍（html片段）
     */
    private String appIntText;

    /**
     * 商品重量（KG）
     */
    private String weight;

    /**
     * 商品产地
     */
    private String productArea;

    /**
     * 一级分类名称
     */
    private String oneClassifyName;

    /**
     * 二级分类名称
     */
    private String twoClassifyName;

    /**
     * 三级分类名称
     */
    private String threeClassifyName;

    /**
     * 是否审批通过【0:否 1 是】
     */
    private Integer isApprove;

    /**
     * 计量单位
     */
    private String quantityUnit;

    /**
     * 是否存在规格【0:否 1 是】
     */
    private Integer isShow;

    /**
     * 是否为活动商品【0：否 ，1：是】
     */
    private Integer isActivity;

    /**
     * 是否为秒杀商品【0：否 ，1：是】
     */
    private Integer isPanicBuying;

    /**
     * 是否为优选商品【0：否 ，1：是】
     */
    private Integer isPreferred;

    /**
     * 税收分类编码
     */
    private String texCode;

    /**
     * 规格
(三方)
     */
    private String format;

    /**
     * 企业端个人端商品关联编码
     */
    private String joinCode;

    /**
     * 是否支持自提[0:否,1:是]
     */
    private Integer isSubmit;

    /**
     * 税收分类编码税率
     */
    private String texRate;

    /**
     * 税收分类编码名称
     */
    private String texName;

    /**
     * 商品简称
     */
    private String goodsSimpleName;

    /**
     * 货源商家
     */
    private String sourceShopName;

    @TableField(exist = false)
    private static final long serialVersionUID = 1L;

    @Override
    public boolean equals(Object that) {
        if (this == that) {
            return true;
        }
        if (that == null) {
            return false;
        }
        if (getClass() != that.getClass()) {
            return false;
        }
        ProductsSchedule other = (ProductsSchedule) that;
        return (this.getProductsScheduleId() == null ? other.getProductsScheduleId() == null : this.getProductsScheduleId().equals(other.getProductsScheduleId()))
            && (this.getGoodsId() == null ? other.getGoodsId() == null : this.getGoodsId().equals(other.getGoodsId()))
            && (this.getGoodsDescribe() == null ? other.getGoodsDescribe() == null : this.getGoodsDescribe().equals(other.getGoodsDescribe()))
            && (this.getOfficialUrl() == null ? other.getOfficialUrl() == null : this.getOfficialUrl().equals(other.getOfficialUrl()))
            && (this.getNeedBuyNumber() == null ? other.getNeedBuyNumber() == null : this.getNeedBuyNumber().equals(other.getNeedBuyNumber()))
            && (this.getGoodsIntroduce() == null ? other.getGoodsIntroduce() == null : this.getGoodsIntroduce().equals(other.getGoodsIntroduce()))
            && (this.getGoodsPackage() == null ? other.getGoodsPackage() == null : this.getGoodsPackage().equals(other.getGoodsPackage()))
            && (this.getVideoUrl() == null ? other.getVideoUrl() == null : this.getVideoUrl().equals(other.getVideoUrl()))
            && (this.getVideoImage() == null ? other.getVideoImage() == null : this.getVideoImage().equals(other.getVideoImage()))
            && (this.getBrandName() == null ? other.getBrandName() == null : this.getBrandName().equals(other.getBrandName()))
            && (this.getGoodsCode() == null ? other.getGoodsCode() == null : this.getGoodsCode().equals(other.getGoodsCode()))
            && (this.getLogisticsType() == null ? other.getLogisticsType() == null : this.getLogisticsType().equals(other.getLogisticsType()))
            && (this.getIsOutGoods() == null ? other.getIsOutGoods() == null : this.getIsOutGoods().equals(other.getIsOutGoods()))
            && (this.getAuditReason() == null ? other.getAuditReason() == null : this.getAuditReason().equals(other.getAuditReason()))
            && (this.getFreightId() == null ? other.getFreightId() == null : this.getFreightId().equals(other.getFreightId()))
            && (this.getGoodsVersion() == null ? other.getGoodsVersion() == null : this.getGoodsVersion().equals(other.getGoodsVersion()))
            && (this.getOtherListId() == null ? other.getOtherListId() == null : this.getOtherListId().equals(other.getOtherListId()))
            && (this.getOtherListName() == null ? other.getOtherListName() == null : this.getOtherListName().equals(other.getOtherListName()))
            && (this.getAppIntText() == null ? other.getAppIntText() == null : this.getAppIntText().equals(other.getAppIntText()))
            && (this.getWeight() == null ? other.getWeight() == null : this.getWeight().equals(other.getWeight()))
            && (this.getProductArea() == null ? other.getProductArea() == null : this.getProductArea().equals(other.getProductArea()))
            && (this.getOneClassifyName() == null ? other.getOneClassifyName() == null : this.getOneClassifyName().equals(other.getOneClassifyName()))
            && (this.getTwoClassifyName() == null ? other.getTwoClassifyName() == null : this.getTwoClassifyName().equals(other.getTwoClassifyName()))
            && (this.getThreeClassifyName() == null ? other.getThreeClassifyName() == null : this.getThreeClassifyName().equals(other.getThreeClassifyName()))
            && (this.getIsApprove() == null ? other.getIsApprove() == null : this.getIsApprove().equals(other.getIsApprove()))
            && (this.getQuantityUnit() == null ? other.getQuantityUnit() == null : this.getQuantityUnit().equals(other.getQuantityUnit()))
            && (this.getIsShow() == null ? other.getIsShow() == null : this.getIsShow().equals(other.getIsShow()))
            && (this.getIsActivity() == null ? other.getIsActivity() == null : this.getIsActivity().equals(other.getIsActivity()))
            && (this.getIsPanicBuying() == null ? other.getIsPanicBuying() == null : this.getIsPanicBuying().equals(other.getIsPanicBuying()))
            && (this.getIsPreferred() == null ? other.getIsPreferred() == null : this.getIsPreferred().equals(other.getIsPreferred()))
            && (this.getTexCode() == null ? other.getTexCode() == null : this.getTexCode().equals(other.getTexCode()))
            && (this.getFormat() == null ? other.getFormat() == null : this.getFormat().equals(other.getFormat()))
            && (this.getJoinCode() == null ? other.getJoinCode() == null : this.getJoinCode().equals(other.getJoinCode()))
            && (this.getIsSubmit() == null ? other.getIsSubmit() == null : this.getIsSubmit().equals(other.getIsSubmit()))
            && (this.getTexRate() == null ? other.getTexRate() == null : this.getTexRate().equals(other.getTexRate()))
            && (this.getTexName() == null ? other.getTexName() == null : this.getTexName().equals(other.getTexName()))
            && (this.getGoodsSimpleName() == null ? other.getGoodsSimpleName() == null : this.getGoodsSimpleName().equals(other.getGoodsSimpleName()))
            && (this.getSourceShopName() == null ? other.getSourceShopName() == null : this.getSourceShopName().equals(other.getSourceShopName()));
    }

    @Override
    public int hashCode() {
        final int prime = 31;
        int result = 1;
        result = prime * result + ((getProductsScheduleId() == null) ? 0 : getProductsScheduleId().hashCode());
        result = prime * result + ((getGoodsId() == null) ? 0 : getGoodsId().hashCode());
        result = prime * result + ((getGoodsDescribe() == null) ? 0 : getGoodsDescribe().hashCode());
        result = prime * result + ((getOfficialUrl() == null) ? 0 : getOfficialUrl().hashCode());
        result = prime * result + ((getNeedBuyNumber() == null) ? 0 : getNeedBuyNumber().hashCode());
        result = prime * result + ((getGoodsIntroduce() == null) ? 0 : getGoodsIntroduce().hashCode());
        result = prime * result + ((getGoodsPackage() == null) ? 0 : getGoodsPackage().hashCode());
        result = prime * result + ((getVideoUrl() == null) ? 0 : getVideoUrl().hashCode());
        result = prime * result + ((getVideoImage() == null) ? 0 : getVideoImage().hashCode());
        result = prime * result + ((getBrandName() == null) ? 0 : getBrandName().hashCode());
        result = prime * result + ((getGoodsCode() == null) ? 0 : getGoodsCode().hashCode());
        result = prime * result + ((getLogisticsType() == null) ? 0 : getLogisticsType().hashCode());
        result = prime * result + ((getIsOutGoods() == null) ? 0 : getIsOutGoods().hashCode());
        result = prime * result + ((getAuditReason() == null) ? 0 : getAuditReason().hashCode());
        result = prime * result + ((getFreightId() == null) ? 0 : getFreightId().hashCode());
        result = prime * result + ((getGoodsVersion() == null) ? 0 : getGoodsVersion().hashCode());
        result = prime * result + ((getOtherListId() == null) ? 0 : getOtherListId().hashCode());
        result = prime * result + ((getOtherListName() == null) ? 0 : getOtherListName().hashCode());
        result = prime * result + ((getAppIntText() == null) ? 0 : getAppIntText().hashCode());
        result = prime * result + ((getWeight() == null) ? 0 : getWeight().hashCode());
        result = prime * result + ((getProductArea() == null) ? 0 : getProductArea().hashCode());
        result = prime * result + ((getOneClassifyName() == null) ? 0 : getOneClassifyName().hashCode());
        result = prime * result + ((getTwoClassifyName() == null) ? 0 : getTwoClassifyName().hashCode());
        result = prime * result + ((getThreeClassifyName() == null) ? 0 : getThreeClassifyName().hashCode());
        result = prime * result + ((getIsApprove() == null) ? 0 : getIsApprove().hashCode());
        result = prime * result + ((getQuantityUnit() == null) ? 0 : getQuantityUnit().hashCode());
        result = prime * result + ((getIsShow() == null) ? 0 : getIsShow().hashCode());
        result = prime * result + ((getIsActivity() == null) ? 0 : getIsActivity().hashCode());
        result = prime * result + ((getIsPanicBuying() == null) ? 0 : getIsPanicBuying().hashCode());
        result = prime * result + ((getIsPreferred() == null) ? 0 : getIsPreferred().hashCode());
        result = prime * result + ((getTexCode() == null) ? 0 : getTexCode().hashCode());
        result = prime * result + ((getFormat() == null) ? 0 : getFormat().hashCode());
        result = prime * result + ((getJoinCode() == null) ? 0 : getJoinCode().hashCode());
        result = prime * result + ((getIsSubmit() == null) ? 0 : getIsSubmit().hashCode());
        result = prime * result + ((getTexRate() == null) ? 0 : getTexRate().hashCode());
        result = prime * result + ((getTexName() == null) ? 0 : getTexName().hashCode());
        result = prime * result + ((getGoodsSimpleName() == null) ? 0 : getGoodsSimpleName().hashCode());
        result = prime * result + ((getSourceShopName() == null) ? 0 : getSourceShopName().hashCode());
        return result;
    }

    @Override
    public String toString() {
        StringBuilder sb = new StringBuilder();
        sb.append(getClass().getSimpleName());
        sb.append(" [");
        sb.append("Hash = ").append(hashCode());
        sb.append(", productsScheduleId=").append(productsScheduleId);
        sb.append(", goodsId=").append(goodsId);
        sb.append(", goodsDescribe=").append(goodsDescribe);
        sb.append(", officialUrl=").append(officialUrl);
        sb.append(", needBuyNumber=").append(needBuyNumber);
        sb.append(", goodsIntroduce=").append(goodsIntroduce);
        sb.append(", goodsPackage=").append(goodsPackage);
        sb.append(", videoUrl=").append(videoUrl);
        sb.append(", videoImage=").append(videoImage);
        sb.append(", brandName=").append(brandName);
        sb.append(", goodsCode=").append(goodsCode);
        sb.append(", logisticsType=").append(logisticsType);
        sb.append(", isOutGoods=").append(isOutGoods);
        sb.append(", auditReason=").append(auditReason);
        sb.append(", freightId=").append(freightId);
        sb.append(", goodsVersion=").append(goodsVersion);
        sb.append(", otherListId=").append(otherListId);
        sb.append(", otherListName=").append(otherListName);
        sb.append(", appIntText=").append(appIntText);
        sb.append(", weight=").append(weight);
        sb.append(", productArea=").append(productArea);
        sb.append(", oneClassifyName=").append(oneClassifyName);
        sb.append(", twoClassifyName=").append(twoClassifyName);
        sb.append(", threeClassifyName=").append(threeClassifyName);
        sb.append(", isApprove=").append(isApprove);
        sb.append(", quantityUnit=").append(quantityUnit);
        sb.append(", isShow=").append(isShow);
        sb.append(", isActivity=").append(isActivity);
        sb.append(", isPanicBuying=").append(isPanicBuying);
        sb.append(", isPreferred=").append(isPreferred);
        sb.append(", texCode=").append(texCode);
        sb.append(", format=").append(format);
        sb.append(", joinCode=").append(joinCode);
        sb.append(", isSubmit=").append(isSubmit);
        sb.append(", texRate=").append(texRate);
        sb.append(", texName=").append(texName);
        sb.append(", goodsSimpleName=").append(goodsSimpleName);
        sb.append(", sourceShopName=").append(sourceShopName);
        sb.append(", serialVersionUID=").append(serialVersionUID);
        sb.append("]");
        return sb.toString();
    }
}